package com.es.designmode.observer;

/**
 * 观察者模式
 * 定义了一种一对多的依赖关系，让多个观察者对象同时监听某一个主题对象
 * 这个主题对象在状态发生变化时，会通知所有观察者对象，使他们能够自动更新自己
 * <p>
 * 其实就是把观察对象作为一个类内属性，观察类内属性
 *
 * @author Will
 */
public class ClientSide {

    public static void main(String[] args) {

        ConcreteSubject s = new ConcreteSubject();

        s.attach(new ConcreteObserver("X", s));
        s.attach(new ConcreteObserver("Y", s));
        s.attach(new ConcreteObserver("Z", s));

        s.setSubjectState("ABC");
        s.notifyy();
    }
}
